*----------------------- Structure of the V.A Object ----------------------*
rsreset
GWVA_OBJ_NAME: rs.l 1 ; nom éventuellement unique optionnel
GWVA_OBJ_CLASS: rs.w 1 ; type de l'objet (fenetre, objet formulaire ...)
; GWVA_CLASS_WIND
; GWVA_CLASS_WIND.APP
; GWVA_CLASS_WIND.RSC
; GWVA_CLASS_WIND.RSC.FORM
; GWVA_CLASS_WIND.RSC.POPUP
; GWVA_CLASS_WIND.TEXT
; GWVA_CLASS_WIND.BITMAP
; GWVA_CLASS_MENU
; GWVA_CLASS_FORM
; GWVA_CLASS_FORM.BUTTON
; GWVA_CLASS_FORM.MENU_POPUP
; GWVA_CLASS_FORM.RADIO_BUTTON
; *GWVA_CLASS_FORM.ROLL_POPUP
; *GWVA_CLASS_FORM.ROLL_RADIO_B
; *GWVA_CLASS_FORM.PROGRESS_BAR
; GWVA_CLASS_FORM.SLIDER
; *GWVA_CLASS_FORM.CLICK_EQUIV
; GWVA_CLASS_FORM.TEXT
; GWVA_CLASS_FORM.TEXT.CHAINED_TEXT
;* = pas d'évènements
GWVA_OBJ_HANDLE: rs.w 1 ; handle unique de l'objet
GWVA_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_OBJ_OLBIT_ENCAPSULATES : 1=this object encapsulates all his sons
; GWVA_OBJ_OLBIT_MASK_METHOD : 1 = aucun évènement ne sera distribué à cet objet
; GWVA_OBJ_OLBIT_DISABLE_DEFAULT_METHOD : 1 = empêche l'utilidation des méthodes par défaut
; 3-7 : reserved, must be 0
; 8-15 : free for user
GWVA_OBJ_METHODTLIST_PTR: rs.l 1 ; pointeur sur la liste locale d'évènements de l'objet
GWVA_OBJ_SHORTCUTLIST_PTR: rs.l 1 ; pointeur sur la liste des shortcuts évènementiels de l'objet
GWVA_OBJ_FATHER_PTR: rs.l 1 ; 0.l si pas d'objet père
GWVA_OBJ_NEXT_BROTHER_PTR: rs.l 1 ; 0.l si pas d'objet frère
GWVA_OBJ_FIRST_SON_PTR: rs.l 1 ; 0.l si pas d'objet fils
GWVA_OBJ_STRUCT_LENGTH: rs.w 0
*------------------- Structure of the Object Method list -------------------*
rsreset
GWVA_OBJ_METHODLIST_ITEM_METHOD: rs.l 1 ; numéro de la méthode ou commande en fonction du bit ..
GWVA_OBJ_METHODLIST_ITEM_CLASS: rs.w 1 ; numéro de la classe concernée par le BEFORE et AFTER
GWVA_OBJ_METHODLIST_ITEM_PROPERTIES:rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_METHOD_PROPERTIES_OLBIT_COMMAND : 1= ITEM_METHOD contient une commande et non une méthode
GWVA_OBJ_METHODLIST_ITEM_ROUTINE: rs.l 1 ; routine à éxécuter
GWVA_OBJ_METHODLIST_STRUCT_LENGTH: rs.w 0
*------------- Structure of the Object Method Shortcut list ---------------*
rsreset
GWVA_OBJ_SHORTCUTLIST_ITEM_SHORTCUT:rs.w 1 ; shortcut éventuel (doit être en premier pour la compatibilité de recherche de liste)
GWVA_OBJ_SHORTCUTLIST_ITEM_METHOD: rs.l 1 ; numéro de la méthode
GWVA_OBJ_SHORTCUTLIST_STRUCT_LENGTH:rs.w 0
*-------------------- Structure of the Window Objects ---------------------*
*---------------------- Encapsulates the V.A Object
rsreset
rs.b GWVA_OBJ_STRUCT_LENGTH
GWVA_WIND_OBJ_FLAGS: rs.w 1 ; same as GEM bits
; NAME / CLOSER / FULLER / MOVER / INFO / SIZER
; UPARROW / DNARROW / VSLIDE
; LFARROW / RTARROW / HSLIDE
; SMALLER
GWVA_WIND_OBJ_STATUS: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_WIND_OLBIT_FULL : 1=fulled
; GWVA_WIND_OLBIT_OPEN : 0=closed, 1=opened
; GWVA_WIND_OLBIT_CURS : 1=curseur du champ éditable affiché
; GWVA_WIND_OLBIT_ICON : 1=iconified
; GWVA_WIND_OLBIT_NAMIFIED : 1=window reduced to a title (and info)
; GWVA_WIND_OLBIT_SHADED : 1=window reduced to a title by system (WinX, Magic)
; GWVA_WIND_OLBIT_UNTOPPABLE : 1=window receive clicks and no WM_TOPPED
; 7 : Reserved, must be 0
; 8-15 : Free for user
*à coder 16->32 eb
GWVA_WIND_OBJ_PROPERTIES: rs.l 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_WIND_OLBIT_HIDETREE : 1=toolbar will not be taken into account
; GWVA_WIND_OLBIT_AMENU : 1=window has got a menu attached
; GWVA_WIND_OLBIT_CTRLC : 1=supports CTRL+C
; GWVA_WIND_OLBIT_CTRLV : 1=supports CTRL+V
; GWVA_WIND_OLBIT_CTRLX : 1=supports CTRL+X
; GWVA_WIND_OLBIT_TOOLBAR : 1=window is a toolbar
; GWVA_WIND_OLBIT_TOOLBAR_POS1 : see the masks in gwva_cte.s to put it
; GWVA_WIND_OLBIT_TOOLBAR_POS2 : at the top/left/right/bottom position
; GWVA_WIND_OLBIT_COPYXY : 1=automatically copy window current_x,y to first_x,y when closed
; GWVA_WIND_OLBIT_AUTODEL : 1=automatically delete window when closed
; GWVA_WIND_OLBIT_FREEPTR1 : 1=automatically MFREE USER_PTR1 if window deleted
; GWVA_WIND_OLBIT_FREEPTR2 : 1=automatically MFREE USER_PTR2 if window deleted
; GWVA_WIND_OLBIT_FIRSTFOCUS : 1=has got the focus at startup among all children
; GWVA_WIND_OLBIT_KEY2ARROW : 1=the arrow keys are converted in arrow message
; 14-31 : reserved : must be 0
GWVA_WIND_OBJ_TOPABLE_STATE: rs.w 1 ; increment to make it untop, decrement to restore original state (0 at startup)
; decrement to make it ununtop, increment to restore original state (0 at startup)
GWVA_WIND_OBJ_NAME_PTR: rs.l 1 ; ptr sur nom
GWVA_WIND_OBJ_INFO_PTR: rs.l 1 ; ptr sur l'info
GWVA_WIND_OBJ_ICON_WIND_PTR: rs.l 1 ; ptr sur une structure fenêtre
GWVA_WIND_OBJ_FOCUSED_CHILD_PTR: rs.l 1 ; ptr sur la fenêtre fille focusée (pour la fenêtre en question)
GWVA_WIND_OBJ_MOUSE_SPEC_PTR: rs.l 1 ; ptr sur la structure souris associée à la fenêtre
GWVA_WIND_OBJ_MENU_SPEC_PTR: rs.l 1 ; ptr sur l'objet menu (GWVA_MENU_STRUCT)
GWVA_WIND_OBJ_MENU_HEIGHT: rs.w 1 ; hauteur du menu 0.w si aucun
;<<< Ces valeurs ne sont pas modifiées par le VISUAL
GWVA_WIND_OBJ_FIRST_EXT_DX: rs.w 1 ; position externe de la fenêtre relativement à sa mère,
GWVA_WIND_OBJ_FIRST_EXT_DY: rs.w 1 ; GWVA_WIN_H_CENTER,GWVA_WIN_V_CENTER pour centrer
GWVA_WIND_OBJ_FIRST_INT_VISIBLE_W: rs.w 1 ; taille interne en unité de la fenêtre
GWVA_WIND_OBJ_FIRST_INT_VISIBLE_H: rs.w 1 ; carac ou pixels (TAILLE MINIMALE 64 PIXELS*?) GWVA_WIN_SIZE_UNDEF pour laiser le V.A. s'en charger (taille du contenu)
GWVA_WIND_OBJ_FIRST_CONTENTS_DX: rs.w 1 ; position du contenu relativement au premier pixel
GWVA_WIND_OBJ_FIRST_CONTENTS_DY: rs.w 1 ; utile intérieur de la fenêtre (après le menu)
GWVA_WIND_OBJ_FIRST_CONTENTS_W: rs.w 1 ; taille du contenu initiale.
GWVA_WIND_OBJ_FIRST_CONTENTS_H: rs.w 1 ; constante GWVA_WIN_SIZE_UNDEF : la taille est définie par le contenu automatiquement (impossible pour une wind_custom)
; n'est jamais comptée la hauteur du menu
; si l'unité est le caractère, ils seront calculés à l'init
; tous seront de toute façon vérifiés à l'init, sauf pour les CUSTOM
; (interne) en pixels si bitmap fixé par taille de l'image
; si wind_text, fixé par nb col,ligne : sera recalculé en pixel pour le "courant"
GWVA_WIND_OBJ_FIRST_INT_BORDERS_W: rs.w 1 ; Somme horizontale initiale des deux espaces à gauche et à droite du contenu
GWVA_WIND_OBJ_FIRST_INT_BORDERS_H: rs.w 1 ; la largeur totale initiale de la fenêtre est égale à ça + le taille du contenu
;>>>
GWVA_WIND_OBJ_INT_DX: rs.w 1 ; position du coin supérieur gauche interne de la fenêtre
GWVA_WIND_OBJ_INT_DY: rs.w 1 ; par rapport à sa mère (par rapport au bureau pour la fenêtre racine), décalé du menu
GWVA_WIND_OBJ_INT_VISIBLE_W: rs.w 1 ; taille interne courante visible de la fenêtre, moins le menu
GWVA_WIND_OBJ_INT_VISIBLE_H: rs.w 1
GWVA_WIND_OBJ_CONTENTS_DX: rs.w 1 ; position du contenu relativement au premier pixel
GWVA_WIND_OBJ_CONTENTS_DY: rs.w 1 ; utile intérieur de la fenêtre (après le menu)
GWVA_WIND_OBJ_CONTENTS_W: rs.w 1 ; taille du contenu
GWVA_WIND_OBJ_CONTENTS_H: rs.w 1 ;
GWVA_WIND_OBJ_INT_BORDERS_W: rs.w 1 ; Somme horizontale des deux espaces à gauche et à droite du contenu
GWVA_WIND_OBJ_INT_BORDERS_H: rs.w 1 ; la largeur totale de la fenêtre est égale à ça + le taille du contenu
GWVA_WIND_OBJ_USER_PTR1: rs.l 1 ; pointeurs user defined
GWVA_WIND_OBJ_USER_PTR2: rs.l 1
GWVA_WIND_OBJ_GEM_HANDLE: rs.w 1
; handle gem, mettre GWVA_WIND_CTE_HANDLE_UNDEF au début
; s'il y a GWVA_WIND_OBJ_GEM_HANDLE ici c'est que la fenêtre n'existe pas !
; mettre en fin de structure, pour tst.w -1 à la création ratisse un décalage de structure
GWVA_WIND_OBJ_STRUCT_LENGTH: rs.w 0
*-------------------- Structure of the Application Object -----------------*
*---------------------- Encapsulates the Window Objects
*------------------------- Encapsulates the V.A Object
rsreset
rs.b GWVA_WIND_OBJ_STRUCT_LENGTH
*à coder 8->16 eb
GWVA_WAPP_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_WAPP_OLBIT_RSC_IN_MEM : (0) le ressource doit être chargé, (1) il est en mémoire
; GWVA_WAPP_OLBIT_RSC_MULTI_RES : (0) un seul ressource (1) liste de ressorces en fonction de la resolution
; GWVA_WAPP_OLBIT_BACKGROUND : (0) pas de background (1) image de fond si APP
; GWVA_WAPP_OLBIT_BACKGROUND_CENTER : (0) background normal (1) centrage auto de l'objet 1
GWVA_WAPP_OBJ_REG_NAME: rs.l 1 ; ptr sur le nom pour le MENU_REGISTER (REG_NEWNAME) (8 caractères)
GWVA_WAPP_OBJ_ACC_NAME: rs.l 1 ; ptr sur le nom pour le MENU_REGISTER
GWVA_WAPP_OBJ_RSC_INFO: rs.l 1 ; ptr soit sur le path-name soit sur l'adresse du ressource,
; ou bien sur un liste de ptr pour chaque nbre de coul. : 2, 4, 16, 256, pas de palette (5*1.L)
; 0.l si pas de ressource
GWVA_WAPP_OBJ_TSR_SIZE: rs.l 1 ; longueur à sauvegarder (page de base y compris) pour les TSR, 0.l si pas TSR
GWVA_WAPP_OBJ_BACKGROUND_WIND_PTR: rs.l 1 ; pointeur sur un objet fenetre
GWVA_WAPP_OBJ_STRUCT_LENGTH: rs.w 0
*------------------- Structure of the BITMAP Window Object --------------------*
*---------------------- Encapsulates the Window Objects
*------------------------- Encapsulates the V.A Object
rsreset
rs.b GWVA_WIND_OBJ_STRUCT_LENGTH
GWVA_WBITM_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_WBITM_OLBIT_FREEDATA : 1=automatically MFREE DATA_PTR if bitmap window deleted
; GWVA_WBITM_OLBIT_FREEPAL : 1=automatically MFREE PAL_PTR if bitmap window deleted
; 2-7 : reserved, must be 0
; 8-15 : free for user
GWVA_WBITM_OBJ_IMG_WIDTH: rs.w 1 ; largeur de l'image
GWVA_WBITM_OBJ_IMG_HEIGHT: rs.w 1 ; hauteur de l'image
GWVA_WBITM_OBJ_DATA_PTR: rs.l 1 ; pointeur sur le buffer format écran (devide dependant)
GWVA_WBITM_OBJ_PAL_PTR: rs.l 1 ; ptr sur la palette (4/16/256)
GWVA_WBITM_OBJ_NB_BITPLANES: rs.w 1 ; nb de plans (1,2,4,8,16)
GWVA_WBITM_OBJ_AFF_DX: rs.w 1 ; (X,Y) / buffer du pixel dans le coin
GWVA_WBITM_OBJ_AFF_DY: rs.w 1 ; supérieur gauche
GWVA_WBITM_OBJ_STRUCT_LENGTH: rs.w 0
*------------------- Structure of the TEXT Window Object --------------------*
*---------------------- Encapsulates the Window Objects
*------------------------- Encapsulates the V.A Object
rsreset
rs.b GWVA_WIND_OBJ_STRUCT_LENGTH
GWVA_WTEXT_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_WTEXT_BIT_STYLE ; la fenêtre est une fenêtre stylisée (malloc supplémentaire)
; GWVA_WTEXT_BIT_CURSEUR ; afficher le curseur
; GWVA_WTEXT_BIT_EDIT ; interprète les évènements claviers pour remplir le buffer
; GWVA_WTEXT_BIT_PORTIONNAL ; *no yet supported*
GWVA_WTEXT_OBJ_NB_COLONNES: rs.w 1 ; largeur : les deux doivent être (TAILLE MINIMALE 64 PIXELS*?)
GWVA_WTEXT_OBJ_NB_LIGNES: rs.w 1 ; hauteur : fixés par l'utilisateur et fixent w,h maximal interne
GWVA_WTEXT_OBJ_FNT_SIZE: rs.w 1 ; taille de la police en pixels
GWVA_WTEXT_OBJ_CELL_WIDTH: rs.w 1
GWVA_WTEXT_OBJ_CELL_HEIGHT: rs.w 1
GWVA_WTEXT_OBJ_MALLOC: rs.l 1 ; 0 si rien (pas de LF ni RC stockés)
GWVA_WTEXT_OBJ_CUR_BUF_COL: rs.w 1 ; numéro de la colonne du dernier caractère avant écriture dans la fenêtre
GWVA_WTEXT_OBJ_CUR_BUF_LIGN: rs.w 1 ; numéro de la ligne du dernier caractère avant écriture dans la fenêtre
GWVA_WTEXT_OBJ_CUR_AFF_COL: rs.w 1 ; numéro de la colonne précédement visible avant scroll
GWVA_WTEXT_OBJ_CUR_AFF_LIGN: rs.w 1 ; numéro de la ligne précédement visible avant scroll
GWVA_WTEXT_OBJ_BUF_COLONNE: rs.w 1 ; numéro de la colonne où le prochain caractère sera écrit dans le buffer
GWVA_WTEXT_OBJ_BUF_LIGNE: rs.w 1 ; numéro de la ligne où le prochain caractère sera écrit dans le buffer
GWVA_WTEXT_OBJ_AFF_COLONNE: rs.w 1 ; numéro de la colonne visible la plus à gauche
GWVA_WTEXT_OBJ_AFF_LIGNE: rs.w 1 ; numéro de la ligne visible la plus à gauche
ifd MDL_WIND_STYLIZED_EDITABLE_TEXT
GWVA_WTEXT_OBJ_MALLOC_STYLE: rs.l 1 ; second buffer (style)
GWVA_WTEXT_OBJ_TABLE_PALETTE: rs.w 4 ; couleurs disponibles ds la fenêtre
GWVA_WTEXT_OBJ_CURRENT_STYLE: rs.b 1 ; style courant de remplissage
; GWVA_WTEXT_STYLE_OLBIT_THICKENED or GWVA_WTEXT_STYLE_BIT_BOLD
; GWVA_WTEXT_STYLE_OLBIT_LIGHT
; GWVA_WTEXT_STYLE_OLBIT_SKEWED or GWVA_WTEXT_STYLE_BIT_ITALIC
; 2/3=1: GWVA_WTEXT_MODE_VT52 ; interprète le VT-52 (esc & crlf)
; 2/3=2: GWVA_WTEXT_MODE_ALLCHAR ; tout est affiché en tant que char graphique
GWVA_WTEXT_OBJ_CURRENT_XPOS: rs.w 1 ; position du curseur graphique
GWVA_WTEXT_OBJ_CURRENT_YPOS: rs.w 1
GWVA_WTEXT_OBJ_SPECIAL_DRAWING: rs.l 1 ; routine de dessin user pour chars spéciaux
endc
GWVA_WTEXT_OBJ_STRUCT_LENGTH: rs.w 0
; ?_ERROR_? : la police sélectionnée ?
*------------------- Structure of The RSC Window Object ---------------------*
*---------------------- Encapsulates the Window Objects
*------------------------- Encapsulates the V.A Object
rsreset
rs.b GWVA_WIND_OBJ_STRUCT_LENGTH
GWVA_WRSC_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; 0 : GWVA_WRSC_OLBIT_FREECLONE : 1=automatically MFREE CLONE_FORM_SAVE if form window deleted
; 1-7 : reserved, must be 0
; 8-15 : free for user
GWVA_WRSC_OBJ_TREE: rs.w 1 ; numéro du tree du formulaire
GWVA_WRSC_OBJ_IDX: rs.w 1 ; numéro de l'objet père à afficher (0=root pour tout le formulaire)
GWVA_WRSC_OBJ_DEPTH: rs.w 1 ; profondeur d'affichage de l'arbre (7 pour tout afficher)
GWVA_WRSC_OBJ_TREE_PTR: rs.l 1 ; adresse du formulaire calculée par le visual
GWVA_WRSC_OBJ_IS_CLONE_RSC: rs.w 1 ; champs de bit disant ce qu'il faut sauver si ce formulaire est un clone ou 0.w si form unique
GWVA_WRSC_OBJ_CLONE_MAIN_PTR: rs.l 1 ; pointeur sur un mot long pointant en permanence sur la structure de la fenêtre clone active
GWVA_WRSC_OBJ_CLONE_SAVED_RSC_PTR: rs.l 1 ; pointeur sur une sauvegarde du contenu du formulaire
GWVA_WRSC_OBJ_STRUCT_LENGTH: rs.w 0
*------------------- Structure of the RSC POPUP Window Object --------------------*
*---------------------- Encapsulates the RSC Window Object
*------------------------- Encapsulates the Window Objects
*---------------------------- Encapsulates the V.A Object
rsreset
rs.b GWVA_WRSC_OBJ_STRUCT_LENGTH
GWVA_WRSCPOPUP_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; 0-7 : reserved, must be 0
; 8-15 : free for user
GWVA_WRSCPOPUP_OBJ_SELECTED_ITEM_IDX:rs.w 1 ; Index de l'item du popup sélectionné (cliqué)
GWVA_WRSCPOPUP_OBJ_CURRENT_ITEM_IDX:rs.w 1 ; Index de l'item du popup en cours de sélection (pas cliqué mais SELECTED)
GWVA_WRSCPOPUP_OBJ_ATTACHED_OBJECT: rs.l 1 ; Objet qui a demander l'ouverture de la fenêtre
GWVA_WRSCPOPUP_OBJ_SELECTED_METHOD: rs.l 1 ; Méthode de l'objet attaché à activer lors d'un sélection dans le popup
GWVA_WRSCPOPUP_OBJ_STRUCT_LENGTH: rs.w 0
*------------------- Structure of The Menu Objects ----------------------*
*-------------------- henerite of the V.A Object
; A revoir : création d'une classe RSC et non WRSC ?
rsreset
rs.b GWVA_OBJ_STRUCT_LENGTH
GWVA_RSC_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; 0 : GWVA_RSC_OLBIT_FREECLONE : 1=automatically MFREE CLONE_FORM_SAVE if form window deleted
; 1-7 : reserved, must be 0
; 8-15 : free for user
GWVA_RSC_OBJ_TREE: rs.w 1 ; numéro du tree du formulaire
GWVA_RSC_OBJ_IDX: rs.w 1 ; numéro de l'objet père à afficher (0=root pour tout le formulaire)
GWVA_RSC_OBJ_DEPTH: rs.w 1 ; profondeur d'affichage de l'arbre (7 pour tout afficher)
GWVA_RSC_OBJ_TREE_PTR: rs.l 1 ; adresse du formulaire calculée par le visual
GWVA_RSC_OBJ_IS_CLONE_RSC: rs.w 1 ; champs de bit disant ce qu'il faut sauver si ce formulaire est un clone ou 0.w si form unique
GWVA_RSC_OBJ_CLONE_MAIN_PTR: rs.l 1 ; pointeur sur un mot long pointant en permanence sur la structure de la fenêtre clone active
GWVA_RSC_OBJ_CLONE_SAVED_RSC_PTR: rs.l 1 ; pointeur sur une sauvegarde du contenu du formulaire
GWVA_MENU_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; 0-7 : reserved, must be 0
; 8-15 : free for user
GWVA_MENU_OBJ_STATUS: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_MENU_OLBIT_OPEN : 0=closed, 1=opened
GWVA_MENU_OBJ_SCROLL_INDEX: rs.w 1 ; nombre de titre décalé (0 pour le menu complet)
GWVA_MENU_OBJ_LIST_ATTACH_PTR: rs.l 1 ; 0.l si aucun sous menu ou 1 ptr sur un tableau de pointeurs sur des structures GWVA_SUB_MENU terminé par 0.l
GWVA_MENU_OBJ_TITLE_SELECTED: rs.w 1 ; index du titre du menu sélectionné
GWVA_MENU_OBJ_DROPDOWN_LIST_SELECTED:rs.w 1 ; index de la dropdown sélectionnée
GWVA_MENU_OBJ_START_LIST: rs.w 0
; 1.w ; le shortcut éventuel (0 si pas)
; 1.b pour le masque de bits des touches spéciales
; bit 0=Rshift, bit 1=Lshift, bit 2=Ctrl, bit 3=Alt
; 1.b pour le scan-code US !!! sera converti en langue locale
; 1.l : pointeur sur la routine associée
; 1.w : numéro du menu
; -1.w à la fin
; Les routines sont appelées avec les paramêtres suivant en entrée :
; a0.l = pointeur objet menu
; a1.l = pointeur sur l'objet fenêtre contenant le menu
; a2.l = pointeur sur le buffer message GEM ou 0 si activé autrement
; a3.l = pointeur sur le tree du menu
; a4.l = pointeur sur la structure GWVA_WMENU_OBJ_IDXLIST_STRUCT courante
; d0.w = Top menu sélectionné
; d1.w = Menu-item Idx
; d2.w = Menu Idx
; CTRL : dc.w MNU_DESK_INFO,$00*256+'i'-'a'+1 ; Ctrl - a
; ALT : dc.w MNU_FILE_WIND,$08*256+'a' ; Alt - a
; Prendre son copain dium
; regarder l'ikbd.w donné pour cette combinaison sans shift
; si l'octet bas est non nul : valeur ASCII : on se fout des touches spé
; s'il est nul, c'est un scancode alors, en plus des touches spé :
; 1) si la touche correspond à quelquechose d'ASCII, le mettre
; 2) sinon, (par ex. F1) mettre le scancode +$80
; dès que l'on a pas $80+..., le masque de touches spé est indifférent
; Pas de shortcut utilisant Alt et une touche strictement à droite de 8
; PAS DE STRUCTURE POUR LE TABLEAU DE POINTEURS SUR LES SOUS-MENUS
; CE TABLEAUX FINIT PAR UN 0.L
rsreset
GWVA_SUB_MENU_TREE_ATTACHED: rs.w 1 ; Menu Tree contenant le menu auquel on veut attacher un sous menu
GWVA_SUB_MENU_IDX_ATTACHED: rs.w 1 ; Index du menu auquel on va attacher un sous menu
GWVA_SUB_MENU_TREE: rs.w 1 ; Index du tree qui contient le dessin du sous menu
GWVA_SUB_MENU_IDX: rs.w 1 ; Index du dessin père dans le ressource
GWVA_SUB_MENU_WHICH_ALIGN: rs.w 1 ; Quel fils du père ci-dessus doit être aligné avec le menu de départ
GWVA_SUB_MENU_SCROLL: rs.w 1 ; Scrollable ? (0) non (1) oui
GWVA_SUB_MENU_START_LIST: rs.w 0
; 1.w ; le shortcut éventuel (0 si pas)
; 1.b pour le masque de bits des touches spéciales
; bit 0=Rshift, bit 1=Lshift, bit 2=Ctrl, bit 3=Alt
; 1.b pour le scan-code US !!! sera converti en langue locale
; 1.l : poiteur sur la routine associée
; 1.w : numéro du menu
; -1.w à la fin
; Les routines sont appelées avec les paramêtres suivant en entrée :
; a0.l = pointeur objet menu
; a1.l = pointeur sur l'objet fenêtre contenant le menu
; a2.l = pointeur sur le buffer message GEM ou 0 si activé autrement
; a3.l = pointeur sur le tree du menu
; a4.l = pointeur sur la structure GWVA_WMENU_OBJ_IDXLIST_STRUCT courante
; d0.w = Top menu sélectionné
; d1.w = Menu-item Idx
; d2.w = Menu Idx
*----- structure de la liste des composantes pour les menus et sous-menus -----*
rsreset
GWVA_MENU_OBJ_MNULIST_ITEM_SHORTCUT:rs.w 1 ; le shortcut éventuel (0 si pas)
GWVA_MENU_OBJ_MNULIST_ITEM_IDX: rs.w 1 ; numéro du menu
GWVA_MENU_OBJ_MNULIST_ITEM_ROUTINE:rs.l 1 ; pointeur sur la routine associée
GWVA_MENU_OBJ_MNULIST_STRUCT_LENGTH:rs.w 0
*-------------- Structure commune pour la recherche des shortcuts ---------*
rsreset ; structure commune pour les shortcuts des menus et sous-menus, des tables
; associées aux fenêtres et des listes d'objet (pour GWVA_CONVERT_KC_IN_OBJECT_IDX)
GWVA_COMMON_LISTOBJ_SHORTCUT: rs.w 1
*------------------- Structure of the FORM Window Object --------------------*
*---------------------- Encapsulates the RSC Window Object
*------------------------- Encapsulates the Window Objects
*---------------------------- Encapsulates the V.A Object
rsreset
rs.b GWVA_WRSC_OBJ_STRUCT_LENGTH
GWVA_WFORM_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; GWVA_WFORM_OLBIT_COPY_FOCUS : 1 = recopie du FOCUSED_IDX dans le FIRST_FOCUSED_IDX au DELETE de l'objet
; 1-7 : reserved, must be 0
; 8-15 : free for user
GWVA_WFORM_OBJ_FIRST_FOCUSED_IDX: rs.w 1 ; numéro de l'objet ayant le focus en premier (GWVA_WFORM_CTE_FOCUSED_IDX_UNDEF si aucun voulu ou GWVA_WFORM_CTE_FOCUSED_IDX_1ST_FOUND si indifférent)
GWVA_WFORM_OBJ_FOCUSED_IDX: rs.w 1 ; numéro de l'objet courant ayant le focus (GWVA_WFORM_CTE_FOCUSED_IDX_UNDEF si aucun voulu ou GWVA_WFORM_CTE_FOCUSED_IDX_1ST_FOUND si indifférent)
GWVA_WFORM_OBJ_FOCUSED_IDX_CURSOR_POS:rs.w 1 ; position du curseur (recalculée par le V.A.). GWVA_WFORM_CTE_FOCUSED_IDX_CURSOR_POS_UNDEF sinon
GWVA_WFORM_OBJ_STRUCT_LENGTH: rs.w 0
*-------------------------- Structures of the FORM Objects --------------------------*
*-------------- Structure de l'objet formulaire (commun) ---------------*
rsreset
rs.b GWVA_OBJ_STRUCT_LENGTH
GWVA_FORM_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES
; 0-7 : reserved, must be 0
; 8-15 : free for user
GWVA_FORM_OBJ_STRUCT_LENGTH: rs.w 0
; Seules les méthodes de cet objet nous interessent (CLICK ....)
*---------------------- Structure de l'objet bouton --------------------*
*----------------------- Hérite de l'objet formulaire commun
rsreset
rs.b GWVA_FORM_OBJ_STRUCT_LENGTH
GWVA_FBTON_OBJ_PROPERTIES: rs.w 1 ; YOU MUST USE THE bftst (a0){OLBit:1} TO CHECK THE PROPERTIES